package com.demo.java.OD401_450.OD437;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【贪吃的猴子(C&D卷-200分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146324976
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(); // 输入数组的长度
        int[] numbers = new int[n]; // 创建数组存储数字
        for (int i = 0; i < n; i++) {
            numbers[i] = in.nextInt(); // 输入数组的元素
        }
        int N = in.nextInt(); // 输入最大可以选取的元素数量

        int leftSum = 0; // 左边选取的总和
        int rightSum = 0; // 右边选取的总和

        // 初始化左边选N个，右侧选0个的情况
        for (int i = 0; i < N; i++) {
            leftSum += numbers[i]; // 初始时选择左侧的N个元素
        }

        int result = leftSum; // 初始结果为左边选择的N个元素和

        // 使用双指针调整左右两边的元素选取个数
        for (int left = N - 1, right = n - 1; left >= 0; left--, right--) {
            leftSum += numbers[right] - numbers[left]; // 将右边的一个元素移入左边，左边的一个元素移除
            result = Math.max(result, leftSum); // 更新最大和
        }

        System.out.println(result); // 输出结果
    }
}
